MongoDB Replication

Database Tutorials - মঙ্গোডিবি (MongoDB)
186
186

MongoDB Replication একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা MongoDB ডেটাবেসের ডেটার কপি তৈরি করে এবং সেগুলি একাধিক সার্ভারে বিতরণ করে। এর মাধ্যমে ডেটাবেসের হাই অ্যাভেইলেবিলিটি (High Availability), রেডানডেন্সি (Redundancy), এবং ফেইলওভার (Failover) নিশ্চিত করা হয়। MongoDB Replication ডেটাবেসের একটি মূল সার্ভার এবং এক বা একাধিক রেপ্লিকা সার্ভার ব্যবহার করে, যাতে ডেটার নিরাপত্তা এবং অ্যাভেইলেবিলিটি বাড়ানো যায়।

MongoDB তে Replication ব্যবহৃত হয় যখন আপনার ডেটাবেসে ডেটার কপি তৈরি করতে চান এবং সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজ রাখতে চান।


MongoDB Replication এর প্রধান উপাদান

MongoDB Replication তে প্রধানত তিনটি উপাদান থাকে:

  1. Primary:
    Primary সার্ভার হল মূল সার্ভার যা সমস্ত লেখার অপারেশন (write operations) পরিচালনা করে। MongoDB একটি রেপ্লিকা সেটে শুধুমাত্র একটি Primary সার্ভার থাকতে পারে। Primary সার্ভারটি ডেটা ইনসার্ট, আপডেট, এবং ডিলিটের মতো অপারেশন গ্রহণ করে।
  2. Secondary:
    Secondary সার্ভারগুলি হল রেপ্লিকা সার্ভার, যা Primary সার্ভারের কপি রাখে এবং শুধুমাত্র পড়ার অপারেশন (read operations) পরিচালনা করে। Secondary সার্ভারগুলি Primary সার্ভারের ডেটা সিঙ্ক্রোনাইজ করে এবং একই ডেটা কপি রেখে যায়। কোনো ফেইলওভার ঘটলে, Secondary সার্ভারটি Primary সার্ভারের দায়িত্ব নিতে পারে।
  3. Arbiter:
    Arbiter একটি বিশেষ ধরনের সার্ভার যা কোনো ডেটা সংরক্ষণ না করলেও রেপ্লিকা সেটের নির্বাচনী প্রক্রিয়ায় অংশগ্রহণ করে। এটি সাধারণত ডেটাবেসের ভোটিং প্রক্রিয়ায় সাহায্য করে যখন Primary সার্ভার নির্বাচন করতে হয়।

MongoDB Replication কনফিগারেশন

MongoDB তে Replication কনফিগার করতে রেপ্লিকা সেট ব্যবহার করা হয়, যা একাধিক সার্ভারের একটি গ্রুপ। এখানে একটি সাধারণ রেপ্লিকা সেট কনফিগারেশনের স্টেপ দেওয়া হলো।

1. Primary এবং Secondary সার্ভার সেটআপ

  1. MongoDB সার্ভার ইনস্টল করুন
    প্রথমে MongoDB এর প্রতিটি সার্ভারে ইনস্টল করুন (Primary এবং Secondary)। সার্ভারগুলোকে একটি নির্দিষ্ট পোর্টে চালু করুন।
  2. Replica Set কনফিগার করা
    MongoDB রিপ্লিকা সেট কনফিগার করার জন্য, আপনার Primary সার্ভারে নিম্নলিখিত কমান্ডটি রান করতে হবে:

    rs.initiate()
    
  3. Secondary সার্ভার যোগ করা
    Secondary সার্ভারটি রিপ্লিকা সেটে যোগ করতে, Primary সার্ভারে নিম্নলিখিত কমান্ডটি রান করুন:

    rs.add("secondaryHostName:port")
    
  4. Replica Set এর স্ট্যাটাস চেক করুন
    Replica Set এর স্ট্যাটাস দেখতে:

    rs.status()
    

Replication এর বৈশিষ্ট্যসমূহ

  1. ডেটা রেডানডেন্সি:
    MongoDB Replication ডেটার কপি তৈরি করে, যাতে ডেটার কোনো সমস্যা হলে বা সার্ভার ডাউন হলে ডেটা হারানো না যায়।
  2. হাই অ্যাভেইলেবিলিটি (High Availability):
    MongoDB Replication হাই অ্যাভেইলেবিলিটি প্রদান করে, যেখানে একাধিক সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজ হয়ে থাকে। একটি সার্ভার ডাউন হলেও অন্য সার্ভার থেকে ডেটা অ্যাক্সেস করা সম্ভব হয়।
  3. ফেইলওভার (Failover):
    যদি Primary সার্ভার ডাউন হয়ে যায়, তাহলে MongoDB এর রেপ্লিকা সেটে কোনো একটি Secondary সার্ভার স্বয়ংক্রিয়ভাবে Primary সার্ভারের কাজ গ্রহণ করে, এবং ডেটা এক্সেস অব্যাহত থাকে। এই প্রক্রিয়াকে ফেইলওভার বলা হয়।
  4. রিড অ্যান্ড রাইট পারফরম্যান্স:
    MongoDB Replication মাধ্যমে পড়ার অপারেশন বিভিন্ন Secondary সার্ভারে ভাগ করা যায়, যা পারফরম্যান্স বৃদ্ধি করে।
  5. ডেটা সিঙ্ক্রোনাইজেশন:
    Primary সার্ভারে যেসকল লেখার অপারেশন (write operations) হয়, তা সমস্ত Secondary সার্ভারে সিঙ্ক্রোনাইজ করা হয়। এই সিঙ্ক্রোনাইজেশন প্রক্রিয়া অনেক দ্রুত এবং কার্যকরী।

Replication ফিচারের ব্যবহারিক সুবিধা

  • ডেটা রেডানডেন্সি:
    একাধিক সার্ভারের মধ্যে ডেটার কপি থাকার কারণে ডেটা হারানোর ঝুঁকি কমে যায়। যদি একটি সার্ভার ডাউন হয়ে যায়, তবে অন্য সার্ভার থেকে ডেটা পাওয়া যাবে।
  • উচ্চ পারফরম্যান্স:
    MongoDB এর ফেইলওভার এবং রিড রিকোয়েস্ট গুলোর জন্য Secondary সার্ভার ব্যবহার করলে, পড়ার (read) পারফরম্যান্স অনেক ভালো হয়, কারণ সার্ভারগুলি একই ডেটা ব্যাখ্যা করতে সক্ষম।
  • বিপরীত সহনশীলতা (Fault tolerance):
    MongoDB Replication ব্যবহারের ফলে, সার্ভার ফেইল হলেও ডেটাবেসে কোন বিঘ্ন ঘটে না এবং পরিষেবা চালু থাকে।

সারাংশ

MongoDB Replication হল MongoDB ডেটাবেসের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটার রেডানডেন্সি, হাই অ্যাভেইলেবিলিটি এবং ফেইলওভার নিশ্চিত করে। Replication ব্যবহারের মাধ্যমে ডেটার একাধিক কপি বিভিন্ন সার্ভারে সংরক্ষিত থাকে, যা ডেটার নিরাপত্তা এবং পারফরম্যান্স বাড়ায়। MongoDB তে Replication ব্যবহার করে ডেটা সিঙ্ক্রোনাইজেশন, রিড এবং রাইট অপারেশন সহজ এবং দ্রুত করা যায়। এটি ডেটাবেসের ব্যবস্থাপনাকে আরও কার্যকরী ও স্থিতিশীল করে তোলে।

Content added By

Replication কী এবং এর প্রয়োজনীয়তা

126
126

Replication MongoDB এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটাবেসের ডেটার রেডানডেন্সি (Redundancy) এবং অ্যাভেইলেবিলিটি (Availability) নিশ্চিত করে। MongoDB তে রেপ্লিকেশন একটি প্রক্রিয়া, যেখানে ডেটা একাধিক সার্ভারে কপি করা হয়। এই কপি করা সার্ভারগুলোকে Replica Set বলা হয়। Replica Set এর মাধ্যমে MongoDB ডেটাবেসের ডেটা বিভিন্ন সার্ভারে রাখা হয় এবং একটিও সার্ভার ডাউন হলেও ডেটা অ্যাক্সেস করা সম্ভব হয়।


Replication এর মৌলিক ধারণা

MongoDB তে রেপ্লিকেশন প্রক্রিয়ায় এক বা একাধিক secondary সার্ভার থাকে যেগুলো মূল primary সার্ভারের ডেটার কপি রাখে। যখন primary সার্ভারে ডেটা আপডেট হয়, তখন সেই পরিবর্তনগুলি secondary সার্ভারে স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয়। এতে ডেটা সুরক্ষিত থাকে এবং সার্ভারের হালনাগাদ অবস্থা সর্বদা ঠিক থাকে।

  • Primary: এটি রেপ্লিকা সেটের মূল সার্ভার, যেখানে ডেটা লেখা হয়। সমস্ত ডেটা প্রথমে এখানে আপডেট হয়।
  • Secondary: এই সার্ভারগুলি primary সার্ভারের ডেটার কপি ধারণ করে এবং শুধুমাত্র পড়ার জন্য ব্যবহার করা যায়। এগুলি primary সার্ভারের সাথে সিঙ্ক্রোনাইজড থাকে।
  • Arbiter: এই সার্ভারটি শুধুমাত্র নির্বাচনী প্রক্রিয়ায় অংশগ্রহণ করে এবং ডেটা ধারণ করে না। এটি ভোটিং সিস্টেমে ব্যবহৃত হয় যখন primary সার্ভার নির্বাচন করা হয়।

Replication এর প্রয়োজনীয়তা

  1. ডেটা রেডানডেন্সি (Redundancy): রেপ্লিকেশন ডেটার কপি তৈরি করে যা নিশ্চিত করে যে ডেটা হারানো যাবে না। যদি একটি সার্ভার ডাউন হয়ে যায়, অন্য সার্ভার থেকে ডেটা পাওয়া যাবে। এতে ডেটার নিরাপত্তা এবং অখণ্ডতা নিশ্চিত হয়।
  2. হাই অ্যাভেইলেবিলিটি (High Availability): MongoDB তে রেপ্লিকেশন ব্যবহার করে আপনি উচ্চ অ্যাভেইলেবিলিটি অর্জন করতে পারেন। যখন একটিতে সমস্যা হয়, তখন অন্য সার্ভার থেকে ডেটা অ্যাক্সেস করা সম্ভব হয়, যা সার্ভার ডাউন টাইম কমায় এবং সিস্টেমের অ্যাভেইলেবিলিটি বাড়ায়।
  3. লোড ব্যালান্সিং (Load Balancing): রেপ্লিকা সেটের secondary সার্ভারগুলি ডেটার রিড অপারেশন পরিচালনা করতে সক্ষম, যা primary সার্ভারের উপর লোড কমিয়ে দেয়। এতে সার্ভারের পারফরম্যান্স বাড়ানো যায় এবং ডেটা অ্যাক্সেস দ্রুত হয়।
  4. ডেটা ফেইলওভার (Data Failover): যদি primary সার্ভারটি ডাউন হয়ে যায়, তবে একটি secondary সার্ভার স্বয়ংক্রিয়ভাবে primary সার্ভারের ভূমিকা গ্রহণ করে। এটি ডেটা অ্যাক্সেস স্থির রাখে এবং সিস্টেমের অখণ্ডতা বজায় রাখে।
  5. ডেটা ব্যাকআপ: রেপ্লিকেশন ডেটার কপি সংরক্ষণ করে, যা সার্ভারের আপডেট এবং ব্যাকআপ প্রক্রিয়া সহজ করে তোলে। এর মাধ্যমে ডেটার প্রতি রক্ষণাবেক্ষণ এবং ব্যাকআপ পরিচালনা করা সহজ হয়।
  6. স্কেলেবিলিটি: MongoDB রেপ্লিকা সেটের মাধ্যমে আপনি স্কেলিং এবং হোস্টিংয়ের সুবিধা লাভ করতে পারেন। যখন আপনার অ্যাপ্লিকেশন বেশি লোড নিতে সক্ষম না থাকে, তখন আপনি একটি রেপ্লিকা সেটের মাধ্যমে নতুন secondary সার্ভার যুক্ত করতে পারেন এবং ডেটা অ্যাক্সেসের জন্য ব্যবহার করতে পারেন।

Replication কিভাবে কাজ করে?

MongoDB তে রেপ্লিকেশন কাজ করে replica set এর মাধ্যমে। একটি replica set কমপক্ষে তিনটি সার্ভার নিয়ে গঠিত হয়: একটি primary সার্ভার এবং দুটি বা তার বেশি secondary সার্ভার।

  1. Primary সার্ভার: ডেটার ইনসার্ট, আপডেট, এবং ডিলিট কার্যক্রম primary সার্ভারে ঘটে। যখন একটি ডেটা পরিবর্তিত হয়, তখন সেই পরিবর্তন primary সার্ভার থেকে secondary সার্ভারে স্বয়ংক্রিয়ভাবে রিপ্লিকেট হয়।
  2. Secondary সার্ভার: এই সার্ভারগুলি primary সার্ভারের সমস্ত পরিবর্তন নিয়ে থাকে এবং primary সার্ভারের সাথে সিঙ্ক্রোনাইজড থাকে। এগুলি শুধুমাত্র ডেটা পড়তে ব্যবহৃত হয়, তবে একটি primary সার্ভার ডাউন হলে, একটি secondary সার্ভার নতুন primary হয়ে ওঠে।
  3. Election (নির্বাচন): যখন primary সার্ভার ডাউন হয়ে যায়, তখন replica set বাকি secondary সার্ভারগুলোর মধ্যে নতুন primary নির্বাচন করতে একটি ভোটিং প্রক্রিয়া শুরু করে।
  4. Write Concern এবং Read Concern: MongoDB তে রেপ্লিকেশন কনসিসটেন্সি এবং ডেটা অ্যাক্সেস কন্ট্রোলের জন্য write concern এবং read concern অপশন রয়েছে, যা ডেটার নিরাপত্তা এবং অ্যাভেইলেবিলিটি নিশ্চিত করে।

Replication এর সুবিধা

  • ডেটা সুরক্ষা: একটি সার্ভার ডাউন হলেও ডেটা হারানো যাবে না, কারণ এটি অন্য সার্ভারে রেপ্লিকেট থাকে।
  • উচ্চ অ্যাভেইলেবিলিটি: সার্ভার যদি ডাউন হয়ে যায়, অন্য সার্ভারটি কাজ চালিয়ে যেতে পারে।
  • লোড ব্যালান্সিং: রিড অপারেশনগুলিকে secondary সার্ভারগুলিতে বিতরণ করার মাধ্যমে পারফরম্যান্স উন্নত করা যায়।
  • ফেইলওভার: primary সার্ভার ডাউন হলে, একটি secondary সার্ভার স্বয়ংক্রিয়ভাবে primary হিসেবে কাজ শুরু করে, যা সিস্টেমের স্বাভাবিক কার্যক্রম বজায় রাখে।

সারাংশ

MongoDB তে replication একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা রেডানডেন্সি এবং অ্যাভেইলেবিলিটি নিশ্চিত করে। রেপ্লিকেশন দ্বারা MongoDB ডেটাবেসের ডেটা একাধিক সার্ভারে কপি করা হয় এবং একটিও সার্ভার ডাউন হলেও ডেটা অ্যাক্সেস করা সম্ভব হয়। এটি ডেটার সুরক্ষা, লোড ব্যালান্সিং এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করার জন্য অপরিহার্য। MongoDB তে রেপ্লিকেশন ব্যবহারের মাধ্যমে আপনি পারফরম্যান্স উন্নত করতে এবং সিস্টেমের স্থিরতা বজায় রাখতে সক্ষম হবেন।

Content added By

Replica Set কী এবং কিভাবে কাজ করে?

127
127

Replica Set হল MongoDB এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটাবেসের উচ্চ অ্যাভেইলেবিলিটি এবং রেডানডেন্সি নিশ্চিত করে। এটি MongoDB তে ডেটার কপি তৈরি করে এবং ডেটাবেস সার্ভারগুলির মধ্যে একাধিক কপি বজায় রাখে, যার মাধ্যমে সার্ভার ডাউন হলে অন্য সার্ভারটি ডেটা সরবরাহ করতে সক্ষম হয়। MongoDB Replica Set ব্যবহারকারীদের জন্য ডেটা সুরক্ষা এবং হাই অ্যাভেইলেবিলিটি প্রদান করে, যা ব্যবসায়িক ক্রিয়ার জন্য অত্যন্ত গুরুত্বপূর্ণ।


Replica Set এর মূল বৈশিষ্ট্যসমূহ

  1. ডেটার রেডানডেন্সি:
    Replica Set MongoDB ডেটাবেসের একাধিক কপি রাখে, যাতে ডেটার একাধিক রেপ্লিকা সার্ভারে উপস্থিত থাকে। এর ফলে একটি সার্ভার ব্যর্থ হলে, অন্য একটি সার্ভার স্বয়ংক্রিয়ভাবে ডেটা প্রদান করতে সক্ষম হয়।
  2. হাই অ্যাভেইলেবিলিটি:
    MongoDB Replica Set ডেটাবেসের সার্ভারগুলির মধ্যে রেপ্লিকেশন এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে। যদি মূল সার্ভার (primary) ডাউন হয়ে যায়, তাহলে রেপ্লিকা সার্ভারটি (secondary) স্বয়ংক্রিয়ভাবে প্রধান সার্ভার হয়ে যায়।
  3. অটোমেটিক ফেইলওভার:
    Replica Set এর একটি প্রধান বৈশিষ্ট্য হল অটোমেটিক ফেইলওভার। যখন প্রাইমারি সার্ভারটি ব্যর্থ হয়, তখন Replica Set এর অন্য একটি সেকেন্ডারি সার্ভার স্বয়ংক্রিয়ভাবে প্রাইমারি সার্ভারে রূপান্তরিত হয় এবং ডেটা প্রাপ্যতা অব্যাহত থাকে।
  4. লেখা এবং পড়ার অপারেশন:
    MongoDB Replica Set এ শুধুমাত্র প্রাইমারি সার্ভারে লেখা (write) অপারেশন করা হয়, কিন্তু সেকেন্ডারি সার্ভারগুলো রিড (read) অপারেশন পরিচালনা করতে পারে। আপনি যদি চান, রিড অপারেশনগুলো সেকেন্ডারি সার্ভার থেকে করতে পারেন, যা পারফরম্যান্স উন্নত করতে সহায়তা করে।

Replica Set কিভাবে কাজ করে?

MongoDB Replica Set সাধারণত তিনটি বা তার বেশি সার্ভার নিয়ে গঠিত হয়:

  1. Primary (প্রাইমারি)
  2. Secondary (সেকেন্ডারি)
  3. Arbiter (যদি থাকে)

1. Primary (প্রাইমারি) সার্ভার

  • এটি ডেটা লেখার জন্য মূল সার্ভার। সমস্ত লেখার অপারেশন প্রাইমারি সার্ভারে ঘটে।
  • প্রাইমারি সার্ভারটি নির্বাচন করা হয় Replica Set এর নির্বাচনী প্রক্রিয়া দ্বারা এবং সার্ভারটি স্বয়ংক্রিয়ভাবে লেখার অপারেশন পরিচালনা করে।

2. Secondary (সেকেন্ডারি) সার্ভার

  • সেকেন্ডারি সার্ভারগুলি প্রাইমারি সার্ভারের সাথে ডেটা সিঙ্ক্রোনাইজ করা থাকে। এগুলি প্রাইমারি সার্ভারের ডেটার রেপ্লিকা।
  • সেকেন্ডারি সার্ভারগুলি পড়ার (read) জন্য ব্যবহার করা হয়, কিন্তু লেখার (write) জন্য ব্যবহার করা হয় না।
  • যদি প্রাইমারি সার্ভার ব্যর্থ হয়, তবে একটি সেকেন্ডারি সার্ভার নতুন প্রাইমারি হিসেবে নির্বাচিত হতে পারে।

3. Arbiter (আরবিটার) সার্ভার

  • আরবিটার একটি বিশেষ ধরনের সার্ভার যা ডেটা সংরক্ষণ বা লেখার কোনো দায়িত্ব পালন করে না। এটি Replica Set এর ভোটিং প্রক্রিয়ায় অংশগ্রহণ করে এবং ফেইলওভার প্রক্রিয়ায় সহায়তা করে।
  • এটি সাধারণত Replica Set এর মধ্যে ভোটিংয়ের জন্য ব্যবহৃত হয়, যখন প্রাইমারি সার্ভার ব্যর্থ হয় এবং নতুন প্রাইমারি নির্বাচন করা হয়।

Replica Set এর নির্বাচনী প্রক্রিয়া (Election Process)

MongoDB Replica Set এ যদি প্রাইমারি সার্ভার ব্যর্থ হয়, তাহলে একটি নতুন প্রাইমারি নির্বাচিত করতে নির্বাচন প্রক্রিয়া চালানো হয়। এই প্রক্রিয়ায় Replica Set এর সেকেন্ডারি সার্ভারগুলি নিজেদের মধ্যে ভোট দেয় এবং যে সার্ভার সবচেয়ে বেশি ভোট পায়, সেটি নতুন প্রাইমারি হিসেবে নির্বাচিত হয়।

  • নির্বাচনী প্রক্রিয়া কেবল তখনই ঘটে যখন প্রাইমারি সার্ভার অনুপলব্ধ হয়ে যায় বা রেপ্লিকা সেটে নতুন প্রাইমারি নির্বাচন করার প্রয়োজন হয়।
  • নির্বাচনী প্রক্রিয়া MongoDB এর কনসেন্সাস প্রোটোকল অনুসরণ করে, যেখানে শুধুমাত্র প্রাপ্তিস্বীকৃত সার্ভার ভোট দিতে পারে।

Replica Set এর কার্যকরিতা ও উপকারিতা

  1. ডেটার সুরক্ষা:
    Replica Set ডেটার কপি রাখে, যা ডেটার হারানো রোধ করে এবং বিপর্যয়ের সময় সুরক্ষা নিশ্চিত করে।
  2. উচ্চ অ্যাভেইলেবিলিটি:
    MongoDB Replica Set সার্ভারের মধ্যে অটোমেটিক ফেইলওভার সমর্থন করে, যাতে সার্ভার ডাউন হলে অন্য সার্ভার দ্রুত প্রাইমারি হিসেবে কাজ করতে পারে।
  3. পারফরম্যান্স উন্নয়ন:
    রিড অপারেশনগুলি সেকেন্ডারি সার্ভার থেকে চালানো সম্ভব, যা পারফরম্যান্স উন্নত করতে সহায়তা করে এবং রিড-বাধ্য করা সার্ভারটি লোড কমাতে সাহায্য করে।
  4. স্কেলিং:
    MongoDB Replica Set এ ডেটা শার্ডিং ব্যবহার করা যেতে পারে, যা ডেটার স্কেলেবিলিটি নিশ্চিত করে। এতে ডেটা বৃদ্ধি পেয়েও পারফরম্যান্স বজায় থাকে।

সারাংশ

MongoDB Replica Set হল একটি ডিস্ট্রিবিউটেড ডেটাবেস আর্কিটেকচার যা ডেটার রেডানডেন্সি, হাই অ্যাভেইলেবিলিটি এবং রেপ্লিকেশন নিশ্চিত করে। Replica Set তে একাধিক সার্ভার থাকে, যার মধ্যে একটি প্রাইমারি সার্ভার এবং এক বা একাধিক সেকেন্ডারি সার্ভার থাকে। ডেটার রেপ্লিকেশন প্রক্রিয়া এবং অটোমেটিক ফেইলওভার ব্যবস্থার মাধ্যমে MongoDB ডেটাবেস সিস্টেমটি উচ্চ পারফরম্যান্স এবং সুরক্ষিত থাকে। Replica Set MongoDB তে ডেটার অবিচ্ছিন্নতা এবং দুর্বলতা রোধ করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By

Primary এবং Secondary Nodes

135
135

MongoDB তে Primary এবং Secondary Nodes দুটি গুরুত্বপূর্ণ কম্পোনেন্ট যা Replica Set ব্যবস্থায় ব্যবহৃত হয়। Replica Set হলো MongoDB এর একটি ফিচার যা ডেটাবেসের ডেটার হাই অ্যাভেইলেবিলিটি এবং রেডানডেন্সি নিশ্চিত করে। এটি MongoDB ডেটাবেস ক্লাস্টারে একাধিক সার্ভারের মধ্যে ডেটার কপি তৈরি করে, যাতে সার্ভার বা নোড ব্যর্থ হলেও ডেটা পুনরুদ্ধার করা যায় এবং সিস্টেমের কার্যক্রম চালু থাকে।

Replica Set-এ তিনটি বা তার বেশি MongoDB সার্ভার থাকতে পারে, যেখানে Primary এবং Secondary Nodes গুরুত্বপূর্ণ ভূমিকা পালন করে।


Primary Node

Primary Node হল MongoDB Replica Set-এ প্রধান সার্ভার, যা সমস্ত লেখা (write) অপারেশন পরিচালনা করে। যখন ডেটা ইনসার্ট, আপডেট বা ডিলিট করা হয়, তখন এই পরিবর্তনগুলি Primary Node এ ঘটে। Primary Node-এ সমস্ত লেখার কাজ হওয়ার পর, তা স্বয়ংক্রিয়ভাবে Secondary Nodes-এ কপি হয়।

  • লেখা অপারেশন (Write Operations): সমস্ত লেখা অপারেশন (যেমন ডেটা ইনসার্ট, আপডেট, ডিলিট) Primary Node-এ হয় এবং এই পরিবর্তনগুলি Secondary Nodes-এ রিপ্লিকেট (কপি) করা হয়।
  • একটি Replica Set-এ একটি Primary Node থাকে: Replica Set-এ এক সময়ে শুধুমাত্র একটি Primary Node থাকবে, তবে সেটি অন্য নোডের সাথে সিঙ্ক্রোনাইজ থাকে।
  • নির্বাচন (Election): যদি কখনও Primary Node নষ্ট হয়ে যায়, Replica Set নির্বাচন প্রক্রিয়া (Election Process) শুরু করবে এবং একটি নতুন Primary Node নির্বাচন করা হবে।

Secondary Node

Secondary Nodes হল Replica Set-এ সেই সার্ভারগুলো যা Primary Node-এর কপি ধারণ করে এবং শুধুমাত্র read অপারেশন পরিচালনা করতে ব্যবহৃত হয়। Secondary Nodes মূলত Primary Node থেকে ডেটা কপি করে এবং সেগুলির মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে।

  • পঠন অপারেশন (Read Operations): Secondary Nodes-এ শুধুমাত্র পঠন (read) অপারেশন করা যায়। এটি মূলত ব্যবহারকারীদের সিস্টেমের অতিরিক্ত লোড কমাতে সহায়তা করে।
  • ডেটা রিপ্লিকেশন: Primary Node-এ হওয়া সমস্ত পরিবর্তন (লেখার অপারেশন) স্বয়ংক্রিয়ভাবে Secondary Nodes-এ কপি হয়ে যায়। এই প্রক্রিয়াটি সিঙ্ক্রোনাইজেশন নামে পরিচিত।
  • ডেটা রিড-এ নির্ভরতা: MongoDB তে, যদি Primary Node ব্যর্থ হয়, তবে এক বা একাধিক Secondary Nodes নির্বাচিত হয়ে Primary হিসেবে কাজ করতে পারে। এটি Replica Set এর হাই অ্যাভেইলেবিলিটি নিশ্চিত করে।

Primary এবং Secondary Nodes এর মধ্যে পার্থক্য

বৈশিষ্ট্যPrimary NodeSecondary Node
ভূমিকালেখার অপারেশন পরিচালনা করেপঠন (read) অপারেশন পরিচালনা করে
ডেটা পরিবর্তনসমস্ত ডেটা পরিবর্তন (insert, update, delete) এখানে হয়শুধুমাত্র ডেটা কপি/রিপ্লিকেট হয়
রিপ্লিকেশনSecondary Nodes-এ ডেটা কপি/রিপ্লিকেট করেPrimary Node-এর পরিবর্তন কপি করে
অপারেশনলেখার অপারেশন (write operations)পড়ার অপারেশন (read operations)
হাই অ্যাভেইলেবিলিটিReplica Set-এ একটি থাকে, নির্বাচন (election) প্রক্রিয়া থেকে নতুন Primary নির্বাচিত হয়একাধিক থাকতে পারে এবং নির্বাচিত Primary থেকে ডেটা সিঙ্ক্রোনাইজ হয়

Replica Set এবং Primary-Secondary Relationship

  • Replica Set MongoDB এর একটি ফিচার, যা ডেটা রেডানডেন্সি এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে। এক Replica Set-এ একাধিক Primary এবং Secondary Nodes থাকতে পারে, তবে একই সময়ে শুধুমাত্র একটি Primary Node থাকে।
  • Primary Node সমস্ত লেখার কার্যক্রম পরিচালনা করে এবং Secondary Nodes স্বয়ংক্রিয়ভাবে Primary Node থেকে ডেটা কপি করে সিঙ্ক্রোনাইজ হয়।
  • Replica Set এ যদি Primary Node নষ্ট হয়, তবে Secondary Nodes নির্বাচিত হয়ে Primary Node হিসেবে কাজ শুরু করতে পারে, যা সিস্টেমের আপটাইম এবং ডেটা অ্যাভেইলেবিলিটি নিশ্চিত করে।

সারাংশ

MongoDB তে Primary এবং Secondary Nodes Replica Set এর মধ্যে ডেটার রেডানডেন্সি এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে। Primary Node সমস্ত লেখার কাজ পরিচালনা করে, এবং Secondary Nodes শুধুমাত্র পঠন (read) অপারেশন পরিচালনা করে, সেগুলি Primary Node থেকে ডেটা কপি করে সিঙ্ক্রোনাইজ থাকে। এই ব্যবস্থাটি MongoDB কে ডিস্ট্রিবিউটেড এবং স্কেলেবল ডেটাবেস হিসেবে তৈরি করে, যা বড় পরিসরের ডেটাবেসে কার্যকরীভাবে কাজ করে।

Content added By

Replica Set Failover এবং Read Preference

111
111

MongoDB Replica Set এবং Read Preference দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা MongoDB এর হাই অ্যাভেইলেবিলিটি এবং পারফরম্যান্স নিশ্চিত করতে সহায়তা করে। Replica Set Failover এবং Read Preference ব্যবহৃত হয় ডেটাবেসের প্রতিলিপি ব্যবস্থাপনা এবং ডেটা পড়ার পছন্দ সম্পর্কে কার্যকর সিদ্ধান্ত নেওয়ার জন্য। নিচে এই দুটি বৈশিষ্ট্য বিস্তারিতভাবে আলোচনা করা হলো।


1. Replica Set Failover

MongoDB Replica Set হলো একাধিক MongoDB সার্ভারের একটি গ্রুপ, যেখানে একটিকে primary সার্ভার হিসেবে নির্বাচন করা হয় এবং বাকি সার্ভারগুলি secondary সার্ভার হিসেবে কাজ করে। Replica Set Failover হলো একটি পরিস্থিতি যেখানে MongoDB সার্ভারের প্রাইমারি (primary) সার্ভার অকার্যকর হয়ে গেলে, অন্য একটি সেকেন্ডারি সার্ভারকে প্রাইমারি হিসেবে নির্বাচন করা হয়, যাতে সিস্টেমের চলমানতা অব্যাহত থাকে।

Replica Set Failover কাজের ধরণ:

  • Primary Server Failure: যখন primary সার্ভার অকার্যকর হয়ে যায় (যেমন সার্ভার ক্র্যাশ হয়ে গেলে বা নেটওয়ার্ক বিচ্ছিন্ন হলে), তখন MongoDB ফেইলওভার প্রক্রিয়া শুরু হয়।
  • Election of New Primary: Replica Set এর বাকি সেকেন্ডারি সার্ভারগুলি নির্বাচন প্রক্রিয়া শুরু করে এবং একটি নতুন primary নির্বাচিত হয়।
  • Automatic Failover: MongoDB নিজে থেকে failover প্রক্রিয়া সম্পন্ন করে, যাতে ডেটাবেসের কর্মক্ষমতা অব্যাহত থাকে। ব্যবহারকারীরা জানতে পারে না যে ফেইলওভার ঘটেছে, কারণ এটি অনেক দ্রুত হয়।

Failover এর সুবিধা:

  • হাই অ্যাভেইলেবিলিটি: ফেইলওভার প্রক্রিয়া নিশ্চিত করে যে ডেটাবেস সার্ভিস ব্যাহত হবে না।
  • ডাউনটাইম কমে যায়: ফেইলওভার প্রক্রিয়ার মাধ্যমে সিস্টেমে ছোট ছোট ডাউনটাইম হয়, যা পারফরম্যান্সকে প্রভাবিত করে না।

ফেইলওভার কনফিগারেশন:

MongoDB Replica Set এর মধ্যে একাধিক সার্ভার থাকে এবং ফেইলওভার প্রক্রিয়াটি MongoDB এর মধ্যে election প্রক্রিয়া চালায়, যার মাধ্যমে নতুন primary নির্বাচন করা হয়।


2. Read Preference

MongoDB তে Read Preference ব্যবহারকারীদের নির্দিষ্ট করে দেয় কোন সার্ভার থেকে ডেটা পড়া হবে, বিশেষ করে যখন MongoDB Replica Set ব্যবহৃত হয়। MongoDB এর মধ্যে Primary এবং Secondary সার্ভার থাকে এবং আপনি Read Preference সেট করে নির্ধারণ করতে পারেন যে, কোন সার্ভার থেকে ডেটা পড়া হবে।

Read Preference এর ধরনগুলি:

  • Primary: এই মোডে ডেটা শুধুমাত্র primary সার্ভার থেকে পড়া হয়। যদি primary সার্ভার অকার্যকর হয়ে যায়, তবে অ্যাপ্লিকেশনটি failover পর্যন্ত অপেক্ষা করবে।

    db.collection.find().readPref('primary')
    
  • Primary Preferred: এই মোডে, MongoDB প্রথমে primary সার্ভার থেকে ডেটা পড়বে, কিন্তু যদি primary অকার্যকর হয়ে যায়, তবে এটি secondary সার্ভার থেকে ডেটা পড়তে পারে।

    db.collection.find().readPref('primaryPreferred')
    
  • Secondary: এই মোডে, MongoDB ডেটা শুধুমাত্র secondary সার্ভার থেকে পড়বে। সাধারণত এই অপশনটি ব্যবহার করা হয় তখন, যখন primary সার্ভার থেকে খুব বেশি লোড নেওয়া উচিত নয়।

    db.collection.find().readPref('secondary')
    
  • Secondary Preferred: এই মোডে, MongoDB প্রথমে secondary সার্ভার থেকে ডেটা পড়বে, কিন্তু যদি কোনো secondary সার্ভার না থাকে, তবে এটি primary সার্ভার থেকে ডেটা পড়বে।

    db.collection.find().readPref('secondaryPreferred')
    
  • Nearest: এই মোডে, MongoDB ডেটা সেই সার্ভার থেকে পড়বে যেটি primary বা secondary হতে পারে এবং যা ক্লায়েন্টের নিকটতম অবস্থানে রয়েছে (নেটওয়ার্ক দূরত্বের ভিত্তিতে)।

    db.collection.find().readPref('nearest')
    

Read Preference এর সুবিধা:

  • পারফরম্যান্স অপটিমাইজেশন: আপনি যদি শুধুমাত্র ডেটা পড়ার জন্য secondary সার্ভার ব্যবহার করেন, তাহলে primary সার্ভারের উপর চাপ কমানো যায়, যা পারফরম্যান্স উন্নত করে।
  • হাই অ্যাভেইলেবিলিটি: Secondary সার্ভার ব্যবহার করে ডেটা পড়া গেলে, primary সার্ভারের ব্যস্ততা কমে এবং এটি failover সময়েও সিস্টেমকে স্থিতিশীল রাখে।
  • লেটেন্সি কমানো: Nearest অপশন ব্যবহার করলে, MongoDB ক্লায়েন্টের নিকটবর্তী সার্ভার থেকে ডেটা পড়তে পারে, ফলে লেটেন্সি কমে।

Replica Set Failover এবং Read Preference এর মধ্যে সম্পর্ক

  • Failover প্রক্রিয়া MongoDB তে ডেটাবেস সার্ভারের অকার্যকতার সময় স্বয়ংক্রিয়ভাবে নতুন primary নির্বাচিত করে, যার ফলে ডেটাবেসের কার্যক্রম অব্যাহত থাকে। এটি হাই অ্যাভেইলেবিলিটি নিশ্চিত করে।
  • Read Preference এর মাধ্যমে MongoDB ডেটা পড়ার সিদ্ধান্ত নেয়, যা ডেটাবেসের পারফরম্যান্স এবং লেটেন্সি নিয়ন্ত্রণ করতে সহায়তা করে, বিশেষ করে যখন multiple secondary servers ব্যবহৃত হয়।

সারাংশ

MongoDB তে Replica Set Failover ডেটাবেসের হাই অ্যাভেইলেবিলিটি নিশ্চিত করে, কারণ যখন primary সার্ভার অকার্যকর হয়ে যায়, তখন একটি secondary সার্ভার নতুন primary হিসেবে নির্বাচিত হয়। এর মাধ্যমে ডাউনটাইম কমে যায়। Read Preference ব্যবহার করে আপনি নির্ধারণ করতে পারেন কোন সার্ভার থেকে ডেটা পড়তে হবে, যা পারফরম্যান্স অপটিমাইজেশন এবং লেটেন্সি কমানোর জন্য গুরুত্বপূর্ণ। MongoDB তে এই দুটি বৈশিষ্ট্য ডেটাবেসের পারফরম্যান্স, স্কেলেবিলিটি এবং স্থিতিশীলতা উন্নত করতে সাহায্য করে।

Content added By
Promotion